package base;

/**
 * 类级别锁
 * 若在同步方法中存在静态数据，为保持静态数据线程安全，我们则需使用类级别锁，
 * 这意味着，如果在运行时有多个实例的Test，则一次只能在一个实例中的一个线程上执行一个线程LockMethod()，
 * 而所有其他实例将被其他线程锁定。针对类级别锁，那么同步块中监视器或锁定对象有如下三种形式：
 */
public class ClassSynchronize {
    public synchronized static void LockMethod1() {
    }

    public void LockMethod2() {
        synchronized (ClassSynchronize.class) {
        }
    }

    private final static Object lock = new Object();

    public void LockMethod3() {
        synchronized (lock) {
        }
    }
}
